package com.zhang.learn.loglearn.lcl;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.junit.Test;

/**
 * 优点：<br>
 *  面向接口开发<br>
 *  统一API<br>
 *  方便项目日志的管理<br>
 *  可以通过导入不同的日志实现类，灵活的切换日志实现技术<br>
 * @author zhanghaolian
 * @date 2021/3/17 21:37
 */
public class JclTest {
    /**
     * 快速开始的示例，由于，这里并没有引入具体的实现所以默认会用java自带的日志实现技术<br>
     *
     * 这个测试方法是在没有在pom文件中导入任何其它的日志相关的依赖下做的
     *
     */
    @Test
    public void quikStart() {
        // 获取log日志记录器对象
        Log log = LogFactory.getLog(this.getClass());
        // 日志输出
        log.info("hello jcl");

    }

    /**
     * 测试用LOG4J记录日志信息
     * 这里需要导入LOG4J相关的MAVEN依赖，同时将LOG4J的配置文件复制过来
     */
    @Test
    public void testLogWitchLog4j() {
        // 获取log日志记录器对象
        Log log = LogFactory.getLog(this.getClass());
        // 日志输出
        log.info("hello jcl");
    }

    @Test
    public void testClossForNameWithError() {
        try {
            final Class<?> aClass = Class.forName("org.apache.commons.logging.impl.AvalonLogger");
            final Object o = aClass.newInstance();
        } catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) {
            e.printStackTrace();
        }
    }

}
